大家好!歡迎來到「Build on Google AI」工程挑戰的第 13 天。
在前面的篇幅中,我們透過 Google ADK 打造了具備產品思維的 PM Agent,並為它解鎖了工具調用、髒數據清洗,以及最重要的 Session State 狀態管理。當使用者與代理人進行多輪互動時,系統已經能精準記住當前關注的專案(例如 core-api-v2)與優先級。
但在真實的軟體工程與產品交付場景中,只讓開發者在終端機(CLI)觀看對話是遠遠不夠的。我們的終極目標是要把這座後端引擎,無縫與前端介面連動,打造一座真正能展示給團隊與利害關係人看的 Web UI 戰情室!
第一步:理解 ADK 開發介面的運作機制在 Google ADK 的架構設計中,為了加速開發者的驗證與除錯效率,原生提供了一套功能強大的開發者網頁介面伺服器。根據 ADK 官方說明,ADK 內建了專為測試與除錯設計的 Web 伺服器模組。以 Python 專案為例,我們不需要額外寫複雜的 Flask 或 FastAPI 路由,只需一行簡單的指令,就能將整個專案的代理人直接掛載到互動式網頁介面上:
adk web --port 8000
(執行提示:記得在包含專案資料夾的父目錄下執行此指令。啟動後,即可透過瀏覽器前往 http://localhost:8000 進入戰情室介面。)
第二步:從命令列到 Web 戰情室的架構映射
當我們從命令列(如 Python 的 adk run 或 Java/Kotlin 的 ReplRunner)切換到 Web 介面時,系統背後的事件循環與狀態流向依然保持高度一致。我們透過下表來梳理這兩種介面的底層對應關係:
| 比較維度 | 命令列介面 (CLI / REPL) | 網頁戰情室介面 (ADK Web UI) |
|---|---|---|
| 互動載體 | 終端機純文字輸入 | 視覺化即時對話視窗 |
| 啟動核心指令 | adk run my_agent |
adk web --port 8000 |
| 狀態與記憶連動 | 透過指定 Session ID 維持本地記憶 | 自動建立 Session,無縫讀寫狀態 |
| 主要場景定位 | 適合工程師進行單元測試與快速除錯 | 適合向團隊展示、驗證多輪對話與趨勢報告 |
第三步:在 Web UI 驗證專案趨勢報告
現在,讓我們在 http://localhost:8000 的介面左上角選單中,選擇我們打造的 PM Agent,並模擬一次真實的專案管理情境。
| 對話輪次 | 使用者輸入 | PM Agent 處理行為 |
|---|---|---|
| Turn 1 | 「我們接下來要全力攻堅 core-api-v2,優先度設為 P0。」 | 調用 update_project_context 工具,將狀態寫入 Session。 |
| Turn 2 | 「目前還有多少未解的重大 Bug?」 | 自動自 Session State 讀取 core-api-v2,精準查詢目標專案數據。 |
| Turn 3 | 「幫我輸出總結報告。」 | 無需重複提醒專案名稱,直接在 Web 介面渲染出結構化的趨勢報告。 |
看著 Agent 能夠在網頁上流暢地根據「記憶」產出精準的進度摘要,是不是大幅提升了專案管理的全局分析能力?
第四步:架構邊界與生產環境警告
身為嚴謹的 Builder,我們必須清楚界定開發與生產環境的邊界。雖然 ADK Web 提供了極度便利的視覺化除錯環境,但官方文件發出了明確的警告:ADK Web 僅專為開發與除錯目的而設計,絕對不應該直接用於正式的生產環境部署 (Production Deployments)。
要讓系統在真實場景中具備高可用性與安全性,我們在未來的生產環境中,依然要將 Agent 打包為微服務,並部署至如 Cloud Run 等正式容器環境中。
command line
web
小結
今天,我們成功賦予了 PM Agent 一個直觀的 Web UI 介面,讓跨團隊協作與專案管理的溝通門檻大幅降低。